package com.zretc.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zretc.dao.FilmTypeMapper;
import com.zretc.entity.FilmType;
import com.zretc.service.FilmTypeService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class FilmTypeServiceImpl implements FilmTypeService {

    private static final Logger Logger = LoggerFactory.getLogger(FilmTypeServiceImpl.class);

    @Autowired
    private FilmTypeMapper filmTypeMapper;

    @Override
    public boolean insertFilmType(FilmType filmType) {

        String filmTypeName = filmType.getFilmTypeName();
        Logger.info("==============================================" + filmTypeName);
        int i = filmTypeMapper.insertFilmType(filmType);
        if (i > 0 ) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public boolean deleteFilmTypeByFilmTypeId(Integer filmTypeId) {

        int i = filmTypeMapper.deleteFilmTypeByFilmTypeId(filmTypeId);
        if (i > 0 ) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public boolean updateFilmTypeByFilmTypeId(FilmType filmType) {

        int i = filmTypeMapper.updateFilmTypeByFilmTypeId(filmType);
        if (i > 0 ) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public PageInfo<FilmType> getFilmTypeListByCondition(Map<String, String> params) {
        // 分页页码
        String number = params.get("pageNum");
        if ("".equals(number)) {
            number = "1";
        }
        Integer pageNum = Integer.valueOf(number);

        String size= params.get("pageSize");
        if ("".equals(size)) {
            number = "1000";
        }
        Integer pageSize = Integer.valueOf(size);
        // 类型名称
        String filmTypeName = params.get("filmTypeName");

        Map<String, String> map = new HashMap<>();

        if ("".equals(filmTypeName) || filmTypeName == null) {
            map.put("filmTypeName",null);
        } else {
            map.put("filmTypeName","%" + filmTypeName + "%");
        }

        // 开始分页
        PageHelper.startPage(pageNum,pageSize);

        //进行分页
        List<FilmType> filmTypeList = filmTypeMapper.findFilmTypeListByFilmTypeName(map);

        //用PageInfo对结果进行包装
        PageInfo<FilmType> pageInfoFilmType = new PageInfo<>(filmTypeList);

        return pageInfoFilmType;
    }

    @Override
    public FilmType getFilmTypeByFilmTypeName(String filmTypeName) {

        return filmTypeMapper.findFilmTypeByFilmTypeName(filmTypeName);
    }

    @Override
    public List<FilmType> getfilmTypeList() {
        List<FilmType> filmTypeList = filmTypeMapper.findfilmTypeList();
        return filmTypeList;
    }
}
